#ifndef JSONDOWNLOAD_H
#define JSONDOWNLOAD_H

//版本控制
#define VERSION_DUPLICATE_ASSETS               0

#define JSON_HEADER                            "header"
#define JSON_BODY                              "data"
#define JSON_FUN_NAME                          "funname"
#define JSON_SID                               "sid"
#define JSON_TIME_STAMP                        "timestamp"


#define TYPE_PROGRAM                           "Program"
#define TYPE_CONFIGURATION                     "Configuration"
#define TYPE_IMAGE                             "Image"
#define TYPE_OTHER                             "Other"

//Fun_Name
//附录A.1.1.1.1	资产注册
#define FUN_NAME_DEVICE_REG           		   "deviceRegistration"
//附录A.1.1.1.2	资产编辑
#define FUN_NAME_DEVICE_EDITOR        		   "deviceEditor"
//附录A.1.1.1.3	资产删除
#define FUN_NAME_DEVICE_DEL           		   "deviceDel"
//附录A.1.1.1.4	资产拼接
#define FUN_NAME_DEVICE_Splice        		   "deviceSplice"
//附录A.1.1.1.5	已拼接资产标识
#define FUN_NAME_DEVICE_IDENTI        		   "deviceSpliceIdentifi"
//附录A.1.1.1.6	操作确认
#define FUN_NAME_DEVICE_CONFIRM       		   "deviceConfirm"
//附录A.1.1.2	装置维护
#define FUN_NAME_DCD_PASSAGEWAYIPSET  		   "DcdRegister"
//附录A.1.1.2.2	装置注销
#define FUN_NAME_DEVICE_CANCEL        		   "deviceCancel"
//附录A.1.1.2.3	获取装置注销结果
#define FUN_NAME_DEVICE_CANCELRESULT  		   "obtainDeviceCancelResult"
//附录A.1.1.2.6	获取装置版本号
#define FUN_NAME_DEVICE_GETDCDVERSION 		   "GetDcdVersion"
//附录A.1.1.2.5	获取装置基本信息
#define FUN_NAME_DEVICE_GETDCDINFO	 		   "GetDcdInfo"
//附录A.1.1.3.2	路由配置信息调阅
#define FUN_NAME_DEVICE_GETDEVCFGROUTE         "getDevCfgRoute"
//附录A.1.1.2.7	注册网段
#define FUN_NAME_REGISTSEGMENT			       "registeredSegment"
//附录A.1.1.2.8	编辑网段
#define FUN_NAME_EDITSEGMENT				   "editSegment"
//附录A.1.1.2.9	删除网段
#define FUN_NAME_DELSEGMENT                    "delSegment"
//附录A.1.1.2.4	获取装置配置网段
#define FUN_NAME_DEVICE_GETDEVCFGNETSEGMENT    "getDevCfgNetSegment"
//附录A.1.1.2.10	首召资产
#define FUN_NAME_DEVICEINITIALIZATION          "deviceInitialization"
//首召资产确认
#define FUN_NAME_DEVICEINITIALIZATIONCONFIRM   "deviceInitializationConfirm"
//软件升级
#define FUN_NAME_REMOTEUPDATE                  "remoteUpdate"
//装置断点续传upPackResume
#define FUN_NAME_UPPACKRESUME                  "upPackResume"
//获取文件偏移量
#define FUN_NAME_GETUPPACKOFFSET               "GetUpPackOffset"
//升级包删除
#define FUN_NAME_UPPACKCLEAR                   "UpPackClear"

//附录A.1.1.4.6	范式化文件下发
#define FUN_NAME_ANALYSISFILE                  "AnalysisFile"
//附录A.1.1.3.6	范式化文件调阅
#define FUN_NAME_ANALYSIFILECALLFOR            "AnalysisFileCallFor"
//附录A.1.1.3.7	PCAP调阅请求
#define FUN_NAME_PCAPREQUEST                   "PcapRequest"
//附录A.1.1.3.8	PCAP调阅
#define FUN_NAME_PCAPCONFIRM                   "PcapConfirm"
//附录A.1.1.4.5	关键文件配置下发
#define FUN_NAME_KEYFILECONF                   "keyFileConf"
//附录A.1.1.3.1	网口配置信息调阅
#define FUN_NAME_GETINTERFACECONFINFO          "getDevInterfaceConfInfo"//   "getDevInterfaceConfInfo"
//#define FUNNAME_GETDEVINTERFACECONFINFO         "getDevInterfaceConfInfo"  //上送和下发funname 不一致
//附录A.1.1.3.3	SNMP配置信息调阅
#define FUN_NAME_GETSNMPCONF                   "GetSNMPConf"
//附录A.1.1.3.4	采集配置信息调阅
#define FUN_NAME_OBTAINCOLCONF                 "obtainColConf"
//附录A.1.1.3.5	采集装置报文数调阅
#define FUN_NAME_OBTAINMESSAGENUM              "obtainMessageNum"
//附录A.1.1.4.3	SNMP配置信息下发
#define FUN_NAME_SNMPCONF                      "SNMPConf"
//附录A.1.1.5.1	镜像容器启动
#define FUN_NAME_DOCKERSTART                   "dockerImgStart"
//附录A.1.1.5.2	镜像容器停止
#define FUN_NAME_DOCKERSTOP                    "dockerImgStop"
//附录A.1.1.5.3	容器IP管理
#define FUN_NAME_DOCKERIPADDR                  "containerIPManage"
//附录A.1.1.4.7	网段资产发现设置
#define FUN_NAME_ASSETDISCOVERYTIMECTRL        "AssetDiscoveryTimeCtrl"
//附录A.1.1.4.8	网段端口扫描设置
#define FUN_NAME_NMAPSCANTIMECTRL              "NmapScanTimeCtrl"
//附录A.1.1.4.9	网段资产发现启停
#define FUN_NAME_ASSETDISCOVERYCTRL            "AssetDiscoveryCtrl"
//附录A.1.1.4.10	网段端口扫描启停
#define FUN_NAME_NMAPSCANCTRL                  "NmapScanCtrl"
//5附录A.1.1.4.11	资产手动扫描
#define FUN_NAME_MANUALSCAN                    "ManualScan"
//附录A.1.1.4.4	资产上送周期下发
#define FUN_NAME_DEVUPDELIVERYCYCLESET         "devUpDeliveryCycleSet"
//附录A.1.1.4.1	网口配置信息下发
#define FUN_NAME_INTERFACECONF                 "interfaceConf"
//附录A.1.1.4.2	路由配置信息下发
#define FUN_NAME_ROUTECONF                     "routeConf"
//附录A.1.1.1.2	副主站资产同步
#define FUN_NAME_GETDCDREGDEV                  "getDcdRegDev"
//附录A.1.1.7	副主站数据同步
#define FUN_NAME_GETDCDREGNET                  "getDcdRegNet"
#define FUN_NAME_TIMESYNI                      "TimeSynI"
#define FUN_NAME_TIMESYNII                     "TimeSynII"
//附录A.1.1.3.9	蜜罐调阅
#define FUN_NAME_HPIMGNAMEGET                  "hpImgNameGet"
#define FUN_NAME_DOCKERIMGNAMEGET              "GetDockerInfo"
#define FUN_NAME_DOCKERCONDELETE "dockerConDelete"
//附录A.1.1.3.10	已知资产调阅
#define FUN_NAME_GETKNOWNDEVICES               "getKnownDevices"
//阈值配置
#define FUN_NAME_DEVICEALARMTHRESHOLD          "deviceAlarmThreshold"
//app配置
#define FUN_NAME_APPCONFIG                     "AppConfig"
//反向代理监听端口配置
#define FUN_NAME_REVERSEPROXYCONf              "reverseProxyConf"
//反向代理监听端口删除
#define FUN_NAME_CLEARPORT                     "clearPort"
//PCAP 存储信息调阅
#define FUN_NAME_DCDINFORMATION                "DcdInformation"
//PCAP 存储开关
#define FUN_NAME_PCAPSTARTORSTOP               "PcapStartOrStop"
//PCAP 存储自动开关
#define FUN_NAME_PCAPFILESTART               "PcapFileStart"
#define FUN_NAME_PCAPFILESTOP               "PcapFileStop"
#define FUN_NAME_PCAPFILEREQUEST              "PcapFileRequest"
#define FUN_NAME_PCAPFILECONFIRM               "PcapFileConfirm"

//会话解析规则文件下发
#define FUN_NAME_NETWORKANALYSISFILE           "SuricataFile"
#define FUN_NAME_GETNETWORKANALYSISFILE            "GetSuricataFile"
//会话解析规则文件调阅
#define FUN_NAME_NETWORKANALYSISFILECALLFOR    "NetworkAnalysisFileCallFor"
//获取SNMP资产系统信息
#define FUN_NAME_SNMP_GETDEVSYSINFO             "GetDevSysInfo"



//阈值配置
#define ALARM_MEMORY                           "memory"
#define ALARM_CPU                              "cpu"
#define ALARM_HARDDISK                         "harddisk"
//通用宏定义
#define JSON_GUID                              "guid"
#define JSON_IP                                "ip"
#define JSON_MD5                               "md5"
#define JSON_FILENAME                          "filename"
#define JSON_SIZE                              "size"
#define JSON_DCDGUID                           "dcdguid"
#define JSON_STATUS                            "status"
#define JSON_DEVGUID                           "devguid"


//资产json的key定义
#define ASSET_PARTITION                        "partition"
#define ASSET_DEVICE_NAME                      "devicename"
#define ASSET_INNER_NAME                       "innername"
#define ASSET_VOLTAGE_CLASS                    "voltagecalss"
#define ASSET_DEVICE_CODE                      "devicecode"
#define ASSET_CORP_ID                          "corpid"
#define ASSET_SITE_TYPE                        "sitetype"
#define ASSET_POSITION                         "position"
#define ASSET_FACTORY_ID                       "factoryid"
#define ASSET_MODEL                            "model"
#define ASSET_AGENT_ID                         "agentid"
#define ASSET_SOFT_VERSION                     "softversion"
#define ASSET_BUSINESS_SYSTEM_ID               "busnesssystemid"
#define ASSET_USER                             "user"
#define ASSET_PRINCIPLE                        "principle"
#define ASSET_TELEPHONE                        "telephone"
#define ASSET_ADD_TIME                         "addtime"
#define ASSET_UPDATE_TIME                      "updatetime"
#define ASSET_REMARK                           "remark"
#define ASSET_SYSTEM_VERSION                   "systemversion"
#define ASSET_NORMA_NAME                       "normaname"
#define ASSET_SCRIPT_NAME                      "scriptname"
#define ASSET_SUB_TABLE                        "subtable"
#define ASSET_SUB_GUID                         "subguid"
#define ASSET_PORT                             "port"
#define ASSET_MAC                              "mac"
#define ASSET_IS_SPAN_DCD                      "isspandcd"
#define ASSET_NETWORK_GUID                     "networkguid"
#define ASSET_TYPE                             "type"
#define ASSET_DEVICE_ID                        "deviceid"
#define ASSET_OPERATION_TYPE                   "operationtype"
#define ASSET_UNKNOWDEVICE                     "unknowndevice"
#define ASSET_ASCRIPTIONTYPE                   "ascriptiontype"
#define ASSET_ISNAT                            "isnat"
#define ASSET_SUBBORDINATEDCDNAME              "subordinatedcdname"
#define ASSET_SUBBORDINATEDCDIP                "subordinatedcdip"
#define ASSET_SUBBORDINATEDCDDUID              "subordinatedcdguid"

//装置json
#define DEVICE_SUBTABLE                        "subtable"
#define DEVICE_RELATIONINFO                    "relationinfo"
#define DEVICE_MAININFO                        "maininfo"
#define DEVICE_SUBMAININFO                     "submaininfo"
#define DEVICE_SUPPINFO                        "suppinfo"
#define DEVICE_ROUTETABLE                      "routetable"
#define DEVICE_DEVICENAME                      "devicename"
#define DEVICE_DEVICECODE                      "devicecode"
#define DEVICE_PORT                            "port"
#define DEVICE_MAC                             "mac"
#define DEVICE_CORPID                          "corpid"
#define DEVICE_SITENAME                        "sitename"
#define DEVICE_PARTITION                       "partition"
#define DEVICE_FACTORYID                       "factoryid"
#define DEVICE_MODEL                           "model"
#define DEVICE_BELONGEDMAJOR                   "belongedmajor"
#define DEVICE_BUSNESSSYSTEMID                 "busnesssystemid"
#define DEVICE_FRONTCOMMUNICETETYPE		       "communicatetype"
#define DEVICE_FRONTPROCESSORIP                "frontprocessorip"
#define DEVICE_DATAPASSAGEWAYNAME		       "datapassagewayname"
#define DEVICE_DATApASSAGEWAYIP                "datapassagewayip"
#define DEVICE_CONTROLPASSAGEWAYIP		       "controlpassagewayip"
#define DEVICE_HARDMODEL                       "hardmodel"
#define DEVICE_SOFTVERSION                     "softversion"
#define DEVICE_SYSTEMVERSION                   "systemversion"
#define DEVICE_USER                            "user"
#define DEVICE_PHYADDRESS                      "phyaddress"
#define DEVICE_SHOWNAME                        "showname"
#define DEVICE_REMARK                          "remark"
#define DEVICE_TYPE                            "type"

#define ROUTE_CONFGUID                         "routeconfguid"
#define ROUTE_DESTINATIONS                     "destinations"
#define ROUTE_MASK                             "mask"
#define ROUTE_GATEWAY                          "gateway"
#define ROUTE_OPERATIONTYPE                    "operationtype"

#define DEVICE_HARDDISKSERIAL                  "harddiskserial"
#define DEVICE_PROGRAM                         "program"
#define DEVICE_STARTTIME                       "starttime"
#define DEVICE_PROGRAMVERSION                  "programversion"

//SNMP配置信息下发
#define CONFIGSNMP_OPERATIONTYPE               "operationtype"
#define CONFIGSNMP_EDITION                     "edition"
#define CONFIGSNMP_PORT                        "port"
#define CONFIGSNMP_COMMUNITY                   "community"
#define CONFIGSNMP_USER                        "user"
#define CONFIGSNMP_SECLEVEL                    "seclevel"
#define CONFIGSNMP_AUTHENTICATIONALG           "authenticationalg"
#define CONFIGSNMP_ENCRYPTIONALG               "encryptionalg"
#define CONFIGSNMP_AUTHENPWD                   "authenticationpassword"
#define CONFIGSNMP_ENCRYPTIONPWD               "encryptionpassword"
#define CONFIGSNMP_CONTEXT                     "context"


//网段
#define JSON_NETSEGMENT                        "netsegment"
#define JSON_BROADCASTDOMAIN                   "broadcastdomain"
#define JSON_IPSEGMENT				           "ipsegment"
#define JSON_MASK                              "mask"
#define JSON_GATEWAY                            "gateway"
#define JSON_PARTITION                         "partition"
#define JSON_SUBNET                            "subnet"
#define JSON_VLAN						       "vlan"
#define JSON_INTERFACENAME				       "interfacename"
#define JSON_SUBINTERFACENAME			       "subinterfacename"
#define JSON_NETWORKGUID                        "networkguid"
#define JSON_ALIAS                              "alias"


//网口配置信息调阅
#define CONFIGINTERFACE_DCDGUID                "dcdguid"
#define CONFIGINTERFACE_TOTALNUM               "totalnum"
#define CONFIGINTERFACE_NTERFACELIST           "interfacelist"
#define CONFIGINTERFACE_INTERFACENAME          "interfacename"
#define CONFIGINTERFACE_NTERFACESTATUS         "interfacestatus"
#define CONFIGINTERFACE_SUBINTERFACENUM        "subinterfacenum"
#define CONFIGINTERFACE_MIRRORINTER            "mirrorinter"
#define CONFIGINTERFACE_IP                     "ip"
#define CONFIGINTERFACE_MAC                    "mac"
#define CONFIGINTERFACE_MASK                   "mask"
#define CONFIGINTERFACE_MTU                    "mtu"
#define CONFIGINTERFACE_GATEWAY                "gateway"
#define CONFIGINTERFACE_SUBINTERFACELIST       "subinterfacelist"
#define CONFIGINTERFACE_SUBINTERFACENAME       "subinterfacename"
#define CONFIGINTERFACE_SUBINTERFACEIP         "subinterfaceip"
#define CONFIGINTERFACE_SUBINTERFACEMASK       "subinterfacemask"
#define CONFIGINTERFACE_VLANID                 "vlanid"

//资产上送周期下发
#define ASSETCYCLE_CYCLE                       "cycle"

//关键文件配置下发
#define KEYFILE_FILES                          "files"
#define KEYFILE_FILEPATH                       "filepath"
#define KEYFILE_FILETYPE                       "filetype"

//网段资产发现设置
#define ASSETDISCOVERY_METHOD                  "assetdiscoverymethod"
#define ASSETDISCOVERY_NWLIST                  "networklist"
#define ASSETDISCOVERY_NETWORKGUID             "networkguid"
#define ASSETDISCOVERY_INTERVAL                "interval"
#define ASSETDISCOVERY_SDELAY                  "scandelay"

//网段端口扫描设置
#define NMAPSCAN_SSIPNUM                       "singlescanipnum"
#define NMAPSCAN_NWLIST                        "networklist"
#define NMAPSCAN_NETWORKGUID                   "networkguid"
#define NMAPSCAN_INTERVAL                      "interval"
#define NMAPSCAN_SDELAY                        "scandelay"
#define NMAPSCAN_NMAPSCANTIMECTRL               "NmapScanTimeCtrl"

//资产手动扫描
#define MANUALSCAN_TYPE                        "type"
#define MANUALSCAN_IPRANGE                     "scaniprange"
#define MANUALSCAN_PORTRANGE                   "scanportrange"

//pcap调阅
#define PCAPCONFIRM_ACK_FILELENGTH             "filelength"

//范式化文件
#define ANALYSISFILE_DISCOVERYTIME             "DiscoverTime"



//软件升级
#define UPGRADEFILE_PACKETTYPE                 "packettype"
#define UPGRADEFILE_PACKETSUBTYPE              "packetsubtype"
#define UPGRADEFILE_EDITION                    "edition"
#define UPGRADEFILE_FIRM                       "firm"
#define UPGRADEFILE_VERSION                    "version"
#define UPGRADEFILE_UPDATETIME_A               "updatatime"
#define UPGRADEFILE_PACKETSIZE                 "packetsize"
#define UPGRADEFILE_PACKETTOTAL                "packetotal"
#define UPGRADEFILE_PACKETINDEX                "packetindex"
#define UPGRADEFILE_FILEMD5                    "filemd5"
#define UPGRADEFILE_OFFSETSIZE                 "offsetsize"
#define UPGRADEFILE_UPDATETIME                 "updatetime"
#define UPGRADEFILE_SIZE                       "size"
#define UPGRADEFILE_SLICEMD5                   "slicemd5"
#define UPGRADEFILE_SLICESIZE                  "slicesize"
#define UPGRADEFILE_SLICETOTAL                 "slicetotal"
#define UPGRADEFILE_SLICEINDEX                 "sliceindex"


//容器和蜜罐
#define JSON_DOCKER_DOCKERIMGNAME              "dockerimgname"
#define JSON_DOCKER_DOCKERCONNAME              "dockerconname"
#define JSON_DOCKER_DOCKERCONOPTION            "dockerconoption"
#define JSON_DOCKER_DOCKERCONIP                "dockerconip"
#define JSON_DOCKER_DOCKERCONDATAVOL           "dockercondatavol"
#define JSON_DOCKER_APPSTARTPARA               "appstartpara"
#define JSON_DOCKER_STARTCOMMAND               "startcommand"
#define JSON_DOCKER_STOPCOMMAND                "stopcommand"
#define JSON_DOCKER_CONIPSEGMENT               "conipsegment"
#define JSON_DOCKER_DOCKERIP                   "dockerip"
#define JSON_DOCKER_NETMASK                    "mask"

//第三方应用接口
#define JSON_APPNAME                           "APPName"


#define JSON_TO                                "t0"
#define JSON_T1                                "t1"
#define JSON_T2                                "t2"

#define PCAP_DCDGUID                           "dcdguid"
#define PCAP_IP                                "ip"
#define PCAP_ST                                "st"
#define PCAP_ET                                "et"
#define PCAP_ACTION                            "action"


//pcap自动调阅
#define PCAP_PCAPTIME "pcaptime"
#define PCAP_TYPE "type"
#define PCAP_SRCPORT "srcport"
#define PCAP_PCAPFILEMAX "pcapfilemax"
#define PCAP_SUBPACKAGESIZE "subpackagesize"
#define PCAP_AGINGTIME "agingtime"
#define PCAP_DSTIP "dstip"
#define PCAP_PCAPID "pcapid"
#define PCAP_DSTPORT "dstport"
#define PCAP_PROTOCOL "protocol"
#define PCAP_SRCIP "srcip"
#define PCAP_INTERFACE "interface"

#define PCAP_FILE_NAME "pcapfilename"
#define PCAP_FILE_MD5 "pcapfilemd5"




//代理监听
#define JSON_PROXY_DESCRIBE                    "describe"
#define JSON_PROXY_PORT                        "port"
#define JSON_PROXY_IPLIST                      "iplist"



#endif // JSONDOWNLOAD_H
